package com.gqj.meter.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.poi.ss.usermodel.IndexedColors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * 互感器对象 md_it
 *
 * @author lxq
 * @date lxq-02-10
 */
public class MdIt extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 互感器标识
     */
    @ApiModelProperty("互感器id")
    private Long itId;

    /**
     * rfid编号/条形码
     */
    @ApiModelProperty("rfid编号")
    @Excel(name = "条形码", headerBackgroundColor = IndexedColors.RED1, width = 25)
    private String rfidNo;

    /**
     * 资产编号
     */
    @ApiModelProperty("资产编号")
    @Excel(name = "资产编号", width = 25)
    private String meterNo;

    /**
     * 设备码
     */
    @ApiModelProperty(name = "设备码")
    @Excel(name = "设备码", width = 25)
    private String equipCode;

    /**
     * 设备名称
     */
    @ApiModelProperty(name = "设备名称")
    @Excel(name = "设备名称", width = 25)
    private String equipName;

    /**
     * 出厂编号
     */
    @ApiModelProperty("出厂编号")
    @Excel(name = "出厂编号", width = 25)
    private String madeNo;
    /**
     * 类别
     */
    @ApiModelProperty("类别")
    @Excel(name = "类别", dictType = "tf_sort_code")
    private String sortCode;

    /**
     * 封印编号
     */
    @ApiModelProperty("封印编号")
    @Excel(name = "封印编号")
    private String sealNo;


    /**
     * 类型
     */
    @ApiModelProperty("类型")
    @Excel(name = "类型")
    private String typeCode;

    /**
     * 型号
     */
    @ApiModelProperty("型号")
    @Excel(name = "型号")
    private String modelCode;

    /**
     * 额定电压
     */
    @ApiModelProperty("额定电压")
    @Excel(name = "额定电压")
    private String rvCode;

    /**
     * 电压变比
     */
    @ApiModelProperty("电压变比")
    @Excel(name = "电压变比")
    private String voltRatioCode;

    /**
     * 电流变比
     */
    @ApiModelProperty("电流变比")
    @Excel(name = "电流变比")
    private String ecRatioCode;

    /**
     * TV等级
     */
    @ApiModelProperty("TV等级")
    @Excel(name = "TV等级")
    private String tvPreCode;

    /**
     * TA等级
     */
    @ApiModelProperty("TA等级")
    @Excel(name = "TA等级")
    private String taPreCode;

    /**
     * 容量
     */
    @ApiModelProperty("容量")
    @Excel(name = "容量")
    private String cap;

    /**
     * 当前状态
     */
    @ApiModelProperty("当前状态")
    @Excel(name = "当前状态",dictType = "cur_status_code")
    private String curStatusCode;

    /**
     * 所在单位
     */
    @ApiModelProperty("所在单位")
    @Excel(name = "所在单位", width = 40)
    private String belongDept;

    /**
     * 产权单位编码
     */
    @ApiModelProperty("产权单位编码")
    @Excel(name = "产权单位", width = 40)
    private String prOrg;

    /**
     * 地区编码
     */
    @ApiModelProperty("地区编码")
    @Excel(name = "地区名称", width = 40)
    private String areaCode;

    /**
     * 产权
     */
    @ApiModelProperty("产权")
    @Excel(name = "产权")
    private String prCode;

    /**
     * 制造单位/生产厂家
     */
    @ApiModelProperty("制造单位/生产厂家")
    @Excel(name = "制造单位", width = 30)
    private String manufacturer;

    /**
     * 到货批次号/生产批次
     */
    @ApiModelProperty("到货批次号/生产批次")
    @Excel(name = "到货批次")
    private String lotNo;

    /**
     * 到货日期
     */
    @ApiModelProperty("到货日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到货日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date arrivalDate;

    /**
     * 检定入库日期
     */
    @ApiModelProperty("检定入库日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检定入库日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date chkInDate;

    /**
     * 库房标识
     */
    @ApiModelProperty("库房标识")
    private Long whId;

    /**
     * 库区标识
     */
    @ApiModelProperty("库区标识")
    private Long whAreaId;

    /**
     * 存放区标识
     */
    @ApiModelProperty("存放区标识")
    private Long storeAreaId;

    /**
     * 储位标识
     */
    @ApiModelProperty("储位标识")
    private Long storeLocId;

    /**
     * 订单类型
     */
    @ApiModelProperty("订单类型")
    @Excel(name = "订单类型")
    private String orderType;

    /**
     * 安装日期
     */
    @ApiModelProperty("安装日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date instDate;

    /**
     * 报废日期
     */
    @ApiModelProperty("报废日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报废日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date descardDate;

    /**
     * 拆除日期
     */
    @ApiModelProperty("拆除日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "拆除日期", width = 30, dateFormat = "yyyy/MM/dd")
    private Date rmvDate;

    /**
     * 资金来源
     */
    @ApiModelProperty("资金来源")
    @Excel(name = "资金来源")
    private String capitalSource;
    /**
     * 库房编号
     */
    @ApiModelProperty("库房编号")
    private String whNo;

    /**
     * 库房名称
     */
    @ApiModelProperty("库房名称")
    private String whName;

    /**
     * 库区编号
     */
    @ApiModelProperty("库区编号")
    private String whAreaNo;

    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaname;
    /**
     * 存放区编号
     */
    @ApiModelProperty("存放区编号")
    private String storeAreaNo;

    /**
     * 存放区名称
     */
    @ApiModelProperty("存放区名称")
    private String storeAreaName;

    /**
     * 储位编号
     */
    @ApiModelProperty("储位编号")
    private String storeLocNo;

    /**
     * 储位名称
     */
    @ApiModelProperty("储位名称")
    private String storeLocName;

    /**
     * 互感器主键集合
     */
    @ApiModelProperty("互感器主键集合")
    private Long[] itIds;

    @ApiModelProperty("业务状态")
    @Excel(name = "业务状态", dictType = "service_status", type = Excel.Type.IMPORT)
    private String serviceStatus;

    /**
     * 电能表主键集合
     */
    @ApiModelProperty("业务状态集合")
    private String[] serviceStatuss;

    /**
     * 设备标识
     */
    private Long equipId;

    public String getEquipCode() {
        return equipCode;
    }

    public void setEquipCode(String equipCode) {
        this.equipCode = equipCode;
    }

    public String getEquipName() {
        return equipName;
    }

    public void setEquipName(String equipName) {
        this.equipName = equipName;
    }

    public Long getEquipId() {
        return equipId;
    }

    public void setEquipId(Long equipId) {
        this.equipId = equipId;
    }

    public String[] getServiceStatuss() {
        return serviceStatuss;
    }

    public void setServiceStatuss(String[] serviceStatuss) {
        this.serviceStatuss = serviceStatuss;
    }

    public String getServiceStatus() {
        return serviceStatus;
    }

    public void setServiceStatus(String serviceStatus) {
        this.serviceStatus = serviceStatus;
    }

    public Long[] getItIds() {
        return itIds;
    }

    public void setItIds(Long[] itIds) {
        this.itIds = itIds;
    }

    public String getMadeNo() {
        return madeNo;
    }

    public void setMadeNo(String madeNo) {
        this.madeNo = madeNo;
    }

    public void setItId(Long itId) {
        this.itId = itId;
    }

    public Long getItId() {
        return itId;
    }

    public void setRfidNo(String rfidNo) {
        this.rfidNo = rfidNo;
    }

    @NotBlank(message = "条形码不能为空")
    @Size(min = 0, max = 50, message = "条形码长度不能超过50个字符")
    public String getRfidNo() {
        return rfidNo;
    }

    public void setMeterNo(String meterNo) {
        this.meterNo = meterNo;
    }

    public String getMeterNo() {
        return meterNo;
    }

    public void setSealNo(String sealNo) {
        this.sealNo = sealNo;
    }

    public String getSealNo() {
        return sealNo;
    }

    public void setSortCode(String sortCode) {
        this.sortCode = sortCode;
    }

    public String getSortCode() {
        return sortCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setModelCode(String modelCode) {
        this.modelCode = modelCode;
    }

    public String getModelCode() {
        return modelCode;
    }

    public void setRvCode(String rvCode) {
        this.rvCode = rvCode;
    }

    public String getRvCode() {
        return rvCode;
    }

    public void setVoltRatioCode(String voltRatioCode) {
        this.voltRatioCode = voltRatioCode;
    }

    public String getVoltRatioCode() {
        return voltRatioCode;
    }

    public void setTvPreCode(String tvPreCode) {
        this.tvPreCode = tvPreCode;
    }

    public String getTvPreCode() {
        return tvPreCode;
    }

    public void setTaPreCode(String taPreCode) {
        this.taPreCode = taPreCode;
    }

    public String getTaPreCode() {
        return taPreCode;
    }

    public String getCap() {
        return cap;
    }

    public void setCap(String cap) {
        this.cap = cap;
    }

    public void setCurStatusCode(String curStatusCode) {
        this.curStatusCode = curStatusCode;
    }

    public String getCurStatusCode() {
        return curStatusCode;
    }

    public void setBelongDept(String belongDept) {
        this.belongDept = belongDept;
    }

    public String getBelongDept() {
        return belongDept;
    }

    public void setPrOrg(String prOrg) {
        this.prOrg = prOrg;
    }

    public String getPrOrg() {
        return prOrg;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setPrCode(String prCode) {
        this.prCode = prCode;
    }

    public String getPrCode() {
        return prCode;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setLotNo(String lotNo) {
        this.lotNo = lotNo;
    }

    public String getLotNo() {
        return lotNo;
    }

    public void setArrivalDate(Date arrivalDate) {
        this.arrivalDate = arrivalDate;
    }

    public Date getArrivalDate() {
        return arrivalDate;
    }

    public void setChkInDate(Date chkInDate) {
        this.chkInDate = chkInDate;
    }

    public Date getChkInDate() {
        return chkInDate;
    }

    public void setWhId(Long whId) {
        this.whId = whId;
    }

    public Long getWhId() {
        return whId;
    }

    public void setWhAreaId(Long whAreaId) {
        this.whAreaId = whAreaId;
    }

    public Long getWhAreaId() {
        return whAreaId;
    }

    public void setStoreAreaId(Long storeAreaId) {
        this.storeAreaId = storeAreaId;
    }

    public Long getStoreAreaId() {
        return storeAreaId;
    }

    public void setStoreLocId(Long storeLocId) {
        this.storeLocId = storeLocId;
    }

    public Long getStoreLocId() {
        return storeLocId;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setInstDate(Date instDate) {
        this.instDate = instDate;
    }

    public Date getInstDate() {
        return instDate;
    }

    public void setRmvDate(Date rmvDate) {
        this.rmvDate = rmvDate;
    }

    public Date getRmvDate() {
        return rmvDate;
    }

    public void setCapitalSource(String capitalSource) {
        this.capitalSource = capitalSource;
    }

    public String getCapitalSource() {
        return capitalSource;
    }

    public String getWhNo() {
        return whNo;
    }

    public void setWhNo(String whNo) {
        this.whNo = whNo;
    }

    public String getWhName() {
        return whName;
    }

    public void setWhName(String whName) {
        this.whName = whName;
    }

    public String getWhAreaNo() {
        return whAreaNo;
    }

    public void setWhAreaNo(String whAreaNo) {
        this.whAreaNo = whAreaNo;
    }

    public String getWhAreaname() {
        return whAreaname;
    }

    public void setWhAreaname(String whAreaname) {
        this.whAreaname = whAreaname;
    }

    public String getStoreAreaNo() {
        return storeAreaNo;
    }

    public void setStoreAreaNo(String storeAreaNo) {
        this.storeAreaNo = storeAreaNo;
    }

    public String getStoreAreaName() {
        return storeAreaName;
    }

    public void setStoreAreaName(String storeAreaName) {
        this.storeAreaName = storeAreaName;
    }

    public String getStoreLocNo() {
        return storeLocNo;
    }

    public void setStoreLocNo(String storeLocNo) {
        this.storeLocNo = storeLocNo;
    }

    public String getStoreLocName() {
        return storeLocName;
    }

    public void setStoreLocName(String storeLocName) {
        this.storeLocName = storeLocName;
    }

    public String getEcRatioCode() {
        return ecRatioCode;
    }

    public void setEcRatioCode(String ecRatioCode) {
        this.ecRatioCode = ecRatioCode;
    }

    public Date getDescardDate() {
        return descardDate;
    }

    public void setDescardDate(Date descardDate) {
        this.descardDate = descardDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("itId", getItId())
                .append("rfidNo", getRfidNo())
                .append("meterNo", getMeterNo())
                .append("sealNo", getSealNo())
                .append("sortCode", getSortCode())
                .append("typeCode", getTypeCode())
                .append("modelCode", getModelCode())
                .append("rvCode", getRvCode())
                .append("voltRatioCode", getVoltRatioCode())
                .append("tvPreCode", getTvPreCode())
                .append("taPreCode", getTaPreCode())
                .append("cap", getCap())
                .append("curStatusCode", getCurStatusCode())
                .append("belongDept", getBelongDept())
                .append("prOrg", getPrOrg())
                .append("areaCode", getAreaCode())
                .append("prCode", getPrCode())
                .append("manufacturer", getManufacturer())
                .append("lotNo", getLotNo())
                .append("arrivalDate", getArrivalDate())
                .append("chkInDate", getChkInDate())
                .append("whId", getWhId())
                .append("whAreaId", getWhAreaId())
                .append("storeAreaId", getStoreAreaId())
                .append("storeLocId", getStoreLocId())
                .append("orderType", getOrderType())
                .append("instDate", getInstDate())
                .append("rmvDate", getRmvDate())
                .append("capitalSource", getCapitalSource())
                .toString();
    }
}
